import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';

ReactDOM.render(
  <App />,
  document.getElementById('root')
);

/**
 * 常用hooks：
 *  useState：在函数式编程中加入state状态，const [变量名称， 修改变量得方法] = useState(变量得默认值)
 *  useEffect: 函数副作用，用来模拟生命周期，componentDidMount，componentDidUpdate,  componentWillunMount
 *    1.useEffect:只传入一个函数，用来模拟 componentDidMount，componentDidupDate,   监听所有'状态'的变化
 *    2.useEffect：传入一个函数，和一个空数组，用来模拟componentDidMount，只监听状态初始化的变化
 *    3.useEffect：传入一个函数，和一个非空数组，用来模拟componentDidUpdate, 监听数组中的值的变化
 *    4.useEffect: 第一个函数中如果有返回值，会模拟componentWillunMount，用来销毁定时器延时器等
 *  useContext:(状态共享器)
 *    通过React.createContext,创建一个共享器，在页面中使用共享器包裹住子组件，共享器提供了属性value，供后代子孙节点共享参数状态
 *    子孙节点通过useContext(共享器)，可以获取到最外层父节点value中共享的数据
 *  useReducer
 *    通过模拟reducer简单的实现一个全局状态管理器，useReducer接收两个参数，第一个参数，reducer：纯函数，同步，第二个参数initalState，全局状态，
 *    const [state, dispatch] = useReducer(reducer, initalState): state接收initalState, dispatch用来触发reducer，更改state，配合useContext实现状态管理器功能
 *    
 *  */

